#include <stdio.h>
#include <cmath>
#include <string.h>
#include <algorithm>
using namespace std;

typedef struct
{
    short x, y;
}Tnod;
Tnod nod[1001];
int  n;  
double slope[1001];
int  ns;
int  ans;

inline bool in()
{
    scanf("%d", &n);
    if (n==0) return false;
    for (int i=0; i<n; ++i)
        scanf("%d%d", &nod[i].x, &nod[i].y);        
    return true;
}    
void count_slope()
{
    int i, j;
    ns = 0;
    for (i=0; i<n-1; ++i)
        for (j=i+1; j<n; ++j)
        {
            if (nod[i].x==nod[j].x) slope[ns++] = 1e10;
            else slope[ns++] = (double)(nod[i].y-nod[j].y) 
                              / ( (nod[i].x-nod[j].x) );
        }    
}   
 
inline void count()
{
    int  maxv=1, i;
    for (i=1; i<ns; ++i)
    {
        if (fabs(slope[i]-slope[i-1])<1e-10)
        {
             maxv++;
             if (maxv > ans) ans = maxv;
        }    
        else maxv = 1;
    }
}    

void deal()
{
    int i, j;
    ans = 1;
    for (i=0; i<n; ++i)
    {
        ns = 0;
        for (j=i+1; j<n; ++j)
           if (i!=j)
           {
               if (nod[i].x==nod[j].x) slope[ns++] = 1e10;
               else slope[ns++] = (double)(nod[i].y-nod[j].y) 
                              / ( (nod[i].x-nod[j].x) ); 
           }    
        sort(slope, slope+ns);
        count();                   
    }    
}    

int main()
{
    int ncase=0;
    while (in())
    {
        deal();   
        ans ++;    
        if (ans >=4) printf("Photo %d: %d points eliminated\n", ++ncase, ans);
        else printf("Photo %d: 0 points eliminated\n", ++ncase);
    }    
    return 0;    
}    